home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / TURBOPASCAL WIN / OWLDEMOS.PAK / SCROLAPP.PAS < prev    next >
Pascal/Delphi Source File  |  1992-06-08  |  2KB  |  67 lines

  1. {************************************************}
  2. {                                                }
  3. {   Turbo Pascal for Windows                     }
  4. {   Demo program                                 }
  5. {   Copyright (c) 1991 by Borland International  }
  6. {                                                }
  7. {************************************************}
  8.  
  9. program Scroll;
  10.  
  11. uses WObjects, WinTypes, WinProcs, Strings;
  12.  
  13. type
  14.  
  15.   { Declare TScrollApp, a TApplication descendant }
  16.   TScrollApp = object(TApplication)
  17.     procedure InitMainWindow; virtual;
  18.   end;
  19.  
  20.   { Declare TScrollWindow, a TWindow descendant }
  21.   PScrollWindow = ^TScrollWindow;
  22.   TScrollWindow = object(TWindow)
  23.     constructor Init(ATitle: PChar);
  24.     procedure Paint(PaintDC: HDC; var PaintInfo: TPaintStruct); virtual;
  25.   end;
  26.  
  27. { Construct the TScrollApp's MainWindow of type TScrollWindow }
  28. procedure TScrollApp.InitMainWindow;
  29. begin
  30.   MainWindow := New(PScrollWindow, Init('Boxes'));
  31. end;
  32.  
  33. { Constructor for a TScrollWindow, sets scroll styles and constructs
  34.   the Scroller object. }
  35. constructor TScrollWindow.Init(ATitle: PChar);
  36. begin
  37.   TWindow.Init(nil, ATitle);
  38.   Attr.Style := Attr.Style or ws_VScroll or ws_HScroll;
  39.   Scroller := New(PScroller, Init(@Self, 8, 15, 80, 60));
  40. end;
  41.  
  42. { Responds to an incoming "paint" message by redrawing boxes.  Note
  43.   that the Scroller's BeginView method, which sets the viewport origin
  44.   relative to the present scroll position, has already been called. }
  45. procedure TScrollWindow.Paint(PaintDC: HDC; var PaintInfo: TPaintStruct);
  46. var
  47.   X1, Y1, I: Integer;
  48. begin 
  49.   for I := 0 to 49 do
  50.   begin
  51.     X1 := 10 + I * 8;
  52.     Y1 := 30 + I * 5;
  53.     Rectangle(PaintDC, X1, Y1, X1 + X1, X1 + Y1 * 2);
  54.   end;
  55. end;
  56.  
  57. { Declare a variable of type TScrollApp } 
  58. var
  59.   ScrollApp: TScrollApp;
  60.  
  61. { Run the ScrollApp }
  62. begin
  63.   ScrollApp.Init('ScrollApp');
  64.   ScrollApp.Run;
  65.   ScrollApp.Done;
  66. end.
  67.